This disclosure relates generally to cache management. More particularly, but not by way of limitation, this disclosure relates to various techniques to dynamically adjust a cache's size based on current and on-going cache usage.
Power dissipation is a major concern for those designing electronic devices and, in particular, for those designing battery-operated portable electronic devices. Illustrative electronic devices include, but are not limited to, server computer systems, desktop computer systems, mobile devices such as notebook and tablet computer systems, personal entertainment devices such as home entertainment systems and mobile music and video devices, and mobile telephones. For electronic devices in general, higher energy dissipation can require more expensive packaging and cooling technology, which in turn increases cost and decreases system reliability. For mobile devices, higher energy dissipation requires larger batteries for a given run time.
In modern electronic devices there are fundamentally two ways in which power can be dissipated: dynamically (due to transistor switching activity), or statically (mainly due to transistor gate leakage current). One of the most effective ways of reducing the dynamic energy dissipation is to scale down the transistor supply voltage. To maintain high switching speed under reduced voltages however, the threshold voltage must also be scaled down. As transistor threshold voltage drops, it is easier for current to leak through the transistor resulting in significant leakage energy dissipation.
Caches, due to the fact that they can account for the largest fraction of on-chip transistors in many modern processors, are a primary source of power dissipation via leakage current. While a large cache may be justified if used efficiently, for applications with small footprints the power advantage gained by the use of a cache can be out weighed by the leakage power of the larger cache.